home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sparc / include / asm / asmmacro.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  977 b   |  41 lines

  1. /* asmmacro.h: Assembler macros.
  2.  *
  3.  * Copyright (C) 1996 David S. Miller (davem@caipfs.rutgers.edu)
  4.  */
  5.  
  6. #ifndef _SPARC_ASMMACRO_H
  7. #define _SPARC_ASMMACRO_H
  8.  
  9. #include <asm/btfixup.h>
  10. #include <asm/asi.h>
  11.  
  12. #define GET_PROCESSOR4M_ID(reg) \
  13.     rd    %tbr, %reg; \
  14.     srl    %reg, 12, %reg; \
  15.     and    %reg, 3, %reg;
  16.  
  17. #define GET_PROCESSOR4D_ID(reg) \
  18.     lda    [%g0] ASI_M_VIKING_TMP1, %reg;
  19.  
  20. /* All trap entry points _must_ begin with this macro or else you
  21.  * lose.  It makes sure the kernel has a proper window so that
  22.  * c-code can be called.
  23.  */
  24. #define SAVE_ALL_HEAD \
  25.     sethi    %hi(trap_setup), %l4; \
  26.     jmpl    %l4 + %lo(trap_setup), %l6;
  27. #define SAVE_ALL \
  28.     SAVE_ALL_HEAD \
  29.      nop;
  30.  
  31. /* All traps low-level code here must end with this macro. */
  32. #define RESTORE_ALL b ret_trap_entry; clr %l6;
  33.  
  34. /* sun4 probably wants half word accesses to ASI_SEGMAP, while sun4c+
  35.    likes byte accesses. These are to avoid ifdef mania. */
  36.  
  37. #define lduXa    lduba
  38. #define stXa    stba
  39.  
  40. #endif /* !(_SPARC_ASMMACRO_H) */
  41.